package util;

import java.util.*;

import play.mvc.*;
import play.mvc.Http.*;



public class MVCUtils {
//
//	//cookie
//	public static Integer COOKIE_MAX_AGE = 86400 * 14;
//	
//	public static String USER_KEY = "aniUserEmail";
//
	public static HashMap<String, String> getRequestArgs(play.mvc.Http.Request request){
		Map<String, String[]> reqArgs = request.body().asFormUrlEncoded();
		
		HashMap<String, String> resultMap = new HashMap<String, String>();
		
		for(String oneKey: reqArgs.keySet()){
			resultMap.put(oneKey, reqArgs.get(oneKey)[0]);
		}
		return resultMap;
		
	}
//	
//	public static <T> T getRequestDTO(play.mvc.Http.Request request, Class<T> dtoClass){
//		return request.body().as(dtoClass);
//	}
//	
//	public static void pushClientCookie(AniCookieDto oneAniCookie){
//		Context context = Context.current();
//		if(oneAniCookie.lifetime <= 0 || oneAniCookie.lifetime == null){
//			context.response().setCookie(oneAniCookie.key, oneAniCookie.value);
//		}else{
//			context.response().setCookie(oneAniCookie.key, oneAniCookie.value, oneAniCookie.lifetime);
//		}
//	}
//	
//	public static String pullClientCookie(String key){
//        try{
//            Context context = Context.current();
//            return pullClientCookie(context, key);
//        }catch (Exception e){
//            return null;
//        }
//    }
//    public static String pullClientCookie(Context context, String key){
//		try{
//            return context.request().cookies().get(key).value();
//        }catch (Exception e){
//            return null;
//        }
//    }
//	//user info cookie
//	public static String pullLocalUserKey(){
//        try{
//            return pullClientCookie(USER_KEY);
//        }catch(Exception e){
//            throw new AniAuthException("HAVE_NOT_LOGIN");
//        }
//	}
//    public static String pullLocalUserKey(Context context){
//        return pullClientCookie(context, USER_KEY);
//    }
//     // --- Form utils
//    public static void verifyRequiredElements(Map<String, String> fieldsValue, String[] requiredFieldKeys){
//        for(String oneKey:requiredFieldKeys){
//            if(!isFormFieldIgnored(fieldsValue.get(oneKey))){
//                throw new AniAuthException("REQUIRED_FIELDS_EMPTY");
//            }
//        }
//    }
//    private static Boolean isFormFieldIgnored(String oneArg){
//        if(StringUtils.isEmpty(oneArg) || oneArg.equals("0")){
//            return false;
//        }
//        return true;
//    }
//    public static Boolean isFieldEmpty(Object oneField){
//        if(oneField == null){
//            return false;
//        }
//        if(oneField instanceof String){
//            return StringUtils.isEmpty(String.valueOf(oneField));
//        }else if(oneField instanceof List){
//            return ((List) oneField).size() < 1;
//        }else{
//            return true;
//        }
//    }
}
